#!/bin/bash

# uses exiftool, yad and graphicsmagick to find/edit JPG comment.
# GPLv3, written by Paul Sherman, Absolute Linux
# Sunday, 07/24/2022

if [[ "$DISPLAY" && "$(which Xdialog 2>&1 | grep -v "which: no")" ]]; then
	dialog="Xdialog"
else
	dialog="dialog"
fi
if [ "$1" == "" ]; then
  $dialog --title "No JPG to comment" --msgbox "\nThis utility needs to be passed the filename of a JPG image, including the path.\n" 0 0
  exit 0
fi
pth=`dirname "$1"`
cd $pth

isjpg=`gm identify "$1" | grep JPEG`
if [ -z "$isjpg" ]; then
	$dialog --title "No valid JPG file" --msgbox "\nThis utility needs to be passed the filename of a JPG image, including the path.\n" 0 0
	exit 0
fi

origcom=`exiftool -Comment "$1" | cut -d: -f2- | xargs`
if [ -z "$origcom" ]; then
	origcom="			- IS BLANK -"
fi

echo 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEBXpUWHRSYXcgcHJvZmlsZSB0eXBl
IGV4aWYAAHjarZZZksMoDIbfdYo5giWxHofFVM0N5vjzY4MTZ+uk06ZiYQGS0McSWv/7t9E/eGSJ
gYz1wUXnFjwmmigJlbDsT9revJjtPT6WWTnp6WgQqBRS98/ghn6FXtBfhr4MOwl6e2UorqMhnxvS
MCRhOJgehyPl3cEyDFMahlSGZ7N/531ai4vBX0+hjP5ttG9pwI/6y6gXZx17g7eRxXsXUQ+yGI+8
1R5om3nzw9DNN82ugphkVdYFb9MjVISvQRPk/o7SNQZ1g9au4T1S0BLqFjnOvL5+XkVOM/SB/IT0
qPET/RVp2hI6G/SGkDvkQz3bi56ukW7crjw7d3g+6Ys7XBzkaOJrrYbW1n12yThM2Y1JzalsNfTL
PVvbqG7Q42eX0JPdS0QJ2BIF66hikWWUwpEFGBsbrpy48brJwgUhGlnFQ4oUUS4EZQCMKEV3uCjc
xGvUCuyiBctBO/AjFt7cxs1d4QDHlQNh9TCMMYZ8VeidTq31DcW8hCNXiEv6TkMUnRwzLYxuIMJt
JNVuCZ7l9ulcFQTtluaACaYldwvAny1fFpduoBUdLeS+gdnXYQApQgQWwbCCwOJYLTtevAh5ZiQy
AFBC6KJGMrCwtVIRpBhVBzjYBfCNMZ63rmJlV+MgBAirjtSDTdQEWMZYrB9vAtZQsmqNtdZZb4ON
Njl1fYc5510/UZNXb7z1znsffPSJggYTbHDBhxBiSFGi4sS1EfsxhhhjSnCaYDlhdEKHlLJkzSbb
7LLPIcecilDRYootrvgSSiypStWKfVxd9TXUWNPKK5bSala7utWvYY1ralhqTZtptrnmW2iRWjqo
Dax35QNqPKjJRqp39Ac1aL2fJrgfJ7YzAzExDOC+E2Alkc5sCWyMdHKd2RIFu8IKgrQdTuVODATN
ymIbH+wu5Cyp+xtuBBDyF+Soo3uD3D23R9Rq2i463Qj1bdiTuih2X4ttDUlC6jflS0k/dXhXPjfU
UnEf2KJPnLvKxvY7vaZNhQuxf+M284VSHnWeutrajeodSZ8OOPksFxV9F8dF0ndxXMKg9nO3tyS9
cn0/3cfRtG+T/TG153Gckv3brJwl/T4rZ0v0fXZeGnovDl90qhwtdmzEHyTXo4azrN51osej2gOV
vx3OYcZjbaL9PFjSayl1Ds5P0kTvpgd/RF7mm/5kWZ8MPYok59us5iPIZSYI9+DYtL4UnVnjmRQz
K3ZW3F3TdYXOKlxw7574Lbc0q1Eczbr69B7AJ5LuGnRt7UbFRxT4sz+r3h+zEFRohFnnhZq/pvZ6
HdVLqz47/E/L7deH0xu3yDmeebfqFb11XtnI4dd/Jeh2deBPTqT/AaWap4QjhZbrAAAAYHpUWHRS
YXcgcHJvZmlsZSB0eXBlIGlwdGMAAHjaPYnBDYBQCEPvTOEIQJvIX0e4ePPg/hFJtE0b6JPzulO2
EV0QdC6Wsv3LylIde58Bh8IQ3W/WkGxy9Mr2cPH6XlV5ADKzFOH1FGNYAAAPQ2lUWHRYTUw6Y29t
LmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6
TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0i
WE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjph
Ym91dD0iIgogICAgeG1sbnM6aXB0Y0V4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4
dC8yMDA4LTAyLTI5LyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8x
LjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
ZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnBsdXM9Imh0dHA6Ly9ucy51c2VwbHVzLm9yZy9s
ZGYveG1wLzEuMC8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAg
ICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4
bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9Imdp
bXA6ZG9jaWQ6Z2ltcDo3MjhhOGNjYi02NGM2LTRiYTYtYjRhYS03MDY1OGQ5ZjYwMDMiCiAgIHht
cE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YmZkMDViM2MtMTUyYi00OTZjLWIzYmYtMTAxYTA3MzI4
YWM2IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NzA1MTM3MWMtOTc0OS00
ZmJlLTg1NmQtNzkzODA5YzAyNTM4IgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3Jt
PSJMaW51eCIKICAgR0lNUDpUaW1lU3RhbXA9IjE1MzM4NDAxMjEwNzg2NDUiCiAgIEdJTVA6VmVy
c2lvbj0iMi4xMC40IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgeG1wOkNyZWF0b3JUb29s
PSJHSU1QIDIuMTAiPgogICA8aXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgICA8cmRmOkJhZy8+
CiAgIDwvaXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgIDxpcHRjRXh0OkxvY2F0aW9uU2hvd24+
CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvblNob3duPgogICA8aXB0Y0V4dDpB
cnR3b3JrT3JPYmplY3Q+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpBcnR3b3JrT3JPYmpl
Y3Q+CiAgIDxpcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpS
ZWdpc3RyeUlkPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkK
ICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAg
c3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NmI3MTQwNy1lMTVlLTQyMzItOGU2ZC01NzM3NTY2
YTMzMDUiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAg
ICBzdEV2dDp3aGVuPSItMDQ6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5
PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VT
dXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6
SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAg
PC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4K
ICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6
eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+c78PlwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN
1wAADdcBQiibeAAAAAd0SU1FB+IICRIqAd3un8IAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
IEdJTVBXgQ4XAAAA50lEQVQ4y9VTMY6DMBAcw+IgqktHCVfkGVfzAqpUSMkb4AVQ5yd09PlCmmui
lNScBHcSeK8IipwQFBKqjDTN2rMa73gFAMYMEADkeT5ZoM7467ruNwzDpQDAzK+ZEELAwEzQbccp
0B3T2MH7OLgaoud5EEIM6Pv+eBJ6jGVZoq7rwSXHceC67t0YZ/8DAoA4ji+FNE3Rti2iKNpXVWUS
kWVZlpRSLohI6gTwgX4XLlRKcRAE37f1MRIzZwCOzPxlGMY6SZKfoihWTdPsbNs+PHjFp74kmd6Z
mdOnBqKU2pqmeerFm6m6f9vOcbRQ6K3oAAAAAElFTkSuQmCC' | base64 -d > /tmp/icon.png


action=$(yad --title="$(basename $1)" --window-icon="/tmp/icon.png" --width=480 --center \
--text=" Current comment:\n\n  <b>$origcom</b>  \n\n\n Enter text below to change the comment\n" --entry)
ret=$?
if [ "$ret" != "0" ]; then 
	exit 0 
fi
if [ -z "$action" ]; then
	action=""
fi
rm /tmp/icon.png 2>/dev/null
exiftool -comment="$action" -q "$1"
$dialog --title "COMPLETE" --msgbox "\nThe JPG comment has been modified.\n" 0 0
